<template>
	<view>
		<view class="config-container">
			<view style="margin-bottom: 20rpx;" v-if="appFlag">
				<u-button type="error" @click="clearStorage">清除缓存({{fileSizeString}})</u-button>
			</view>
			<view>
				<u-button type="error" @click="signOut">退出登录</u-button>
			</view>
		</view>
		<view>
			<u-modal :show="clearShow" title="清除缓存" :content="clearContent" @confirm="confirm" showCancelButton @cancel="clearCancel"></u-modal>
		</view>
	</view>
</template>
<script>
	export default {
		data() {
			return {
				appFlag: false,
				fileSizeString: '',
				clearShow: false,
				clearContent: ''
			}
		},
		created() {
			// 判断能否使用plus
			// #ifdef APP-PLUS
			this.appFlag = true
			this.formatSize()
			// #endif

			// uni.getSystemInfo({
			// 	success: function(res) {
			// 		console.log('设备品牌', res.brand);
			// 		console.log('设备型号', res.model);
			// 		console.log('客户端平台', res.platform);
			// 	}
			// });
		},
		methods: {
			// 登出
			signOut() {
				// 跳转至tabBar
				uni.reLaunch({
					url: '../login/index'
				});
			},
			// 获取缓存
			formatSize() {
				let that = this;
				plus.cache.calculate(function(size) {
					let sizeCache = parseInt(size);
					if (sizeCache == 0) {
						that.fileSizeString = "0B";
					} else if (sizeCache < 1024) {
						that.fileSizeString = sizeCache + "B";
					} else if (sizeCache < 1048576) {
						that.fileSizeString = (sizeCache / 1024).toFixed(2) + "KB";
					} else if (sizeCache < 1073741824) {
						that.fileSizeString = (sizeCache / 1048576).toFixed(2) + "MB";
					} else {
						that.fileSizeString = (sizeCache / 1073741824).toFixed(2) + "GB";
					}
				});
			},
			clearStorage() {
				this.clearContent = "您确定要清除缓存" + "(" + this.fileSizeString + ")" + "吗?"
				this.clearShow = true;
			},
			confirm() {
				this.clearCache()
			},
			// 清理缓存
			clearCache() {
				let that = this;
				let os = plus.os.name;
				if (os == 'Android') {
					let main = plus.android.runtimeMainActivity();
					let sdRoot = main.getCacheDir();
					let files = plus.android.invoke(sdRoot, "listFiles");
					let len = files.length;
					for (let i = 0; i < len; i++) {
						let filePath = '' + files[i]; // 没有找到合适的方法获取路径，这样写可以转成文件路径  
						plus.io.resolveLocalFileSystemURL(filePath, function(entry) {
							if (entry.isDirectory) {
								entry.removeRecursively(function(entry) { //递归删除其下的所有文件及子目录
									that.clearShow = false;
									uni.showToast({
										title: '缓存清理完成',
										duration: 2000
									});
									that.formatSize(); // 重新计算缓存  
								}, function(e) {
									console.log(e.message)
								});
							} else {
								entry.remove();
							}
						}, function(e) {
							console.log('文件路径读取失败')
						});
					}
				} else { // ios  
					plus.cache.clear(function() {
						that.clearShow = false;
						uni.showToast({
							title: '缓存清理完成',
							duration: 2000
						});
						that.formatSize();
					});
				}
			},
			clearCancel() {
				this.clearShow = false;
			}
		}
	}
</script>
<style lang="scss">
	.config-container {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 20rpx;
		padding: 50rpx;
	}
</style>
